Prepare the ingredients first: peel and dice potatoes, onions, carrots, ham, and celery and measure the rest of the ingredients.
Preheat a large Dutch oven or another soup pot over medium heat and add oil. Add onions, celery, and carrots to the pot and sauté until softened.
Mix in diced ham, let it heat through, and then, add diced potatoes.
Mix everything well and pour in chicken stock, just enough to cover potatoes.
Season the soup with salt, pepper, and garlic powder and stir well. Let it cook over medium-low heat until potatoes are completely soft, tender, and falling apart. You can even mash a few with a wooden spoon to created thicken soup texture.
Stir in milk, grated white cheddar cheese, and diced green onion. Cook long enough for the cheese to melt and serve.
NOTE: if you want richer and creamier texture, feel free to use heavy whipping cream instead of milk.