Heat the olive oil in a large Dutch oven or heavy-bottom saucepan.
Brown the sausage over medium-low heat until crisp. Remove from the pan and set aside.
Add the onion and a pinch of salt to the Dutch oven.
Place a liquid measuring cup filled with water near the stove.
Allow the onion to cook for several minutes, stirring periodically as it begins to caramelize. A brown glaze will begin forming on the bottom of the pan. If at any point the bottom of the pan looks like it’s about to become too dark and start burning, add 1 to 2 tablespoons of the reserved water and scrape the brown bits back into the onion.
Once the onion is soft and lightly caramelized, add the flour, tossing it with the onion to coat.
Add the garlic and cook for another minute.
A brown coating should begin to form on the bottom of the pan, this time from the flour.
Once the pan has a brown glaze, add the chicken stock and use a spatula to scrape the brown bits up from the bottom of the pan so they combine with the liquid. Bring the mixture to a boil over high heat.
While the stock is heating, peel and dice the potato (a small or medium dice).
Once the stock is boiling, add the milk along with the diced potato. Turn the heat to medium-low and allow the mixture to simmer for 15 minutes, uncovered, stirring frequently to prevent the potatoes from sticking to the bottom of the pan.
Add the corn kernels and simmer for another 8 to 9 minutes, stirring frequently.
Add the sausage, salt, and pepper and stir for another 1 to 2 minutes.
If using butter to finish, stir just after removing the pan from the heat.
Top each serving with fresh chopped parsley and serve.