Melt butter in a large saucepan over medium heat. Add onion, carrot, celery, and garlic; cook until slightly softened, about 2 minutes.
Stir in flour to form a paste. Cook, stirring constantly, until lightly browned and fragrant, about 5 minutes. Remove from heat and let cool slightly.
In a large soup pot, combine potatoes, shredded chicken, both corns, and 3 cups chicken stock. Cook over medium heat.
Whisk remaining 1 cup stock into the flour mixture until smooth. Stir into the soup pot and bring to a simmer. Cook until thickened, about 5 minutes.
Add half-and-half, nutmeg, salt, and pepper. Bring to a gentle boil, then reduce heat and simmer until potatoes are tender, about 20 minutes.
Taste and adjust seasoning. Serve hot.