Peel the potatoes and cut them into 1-inch cubes, ensuring they're relatively uniform in size so they cook evenly. Place the cut potatoes in a large pot and cover completely with cold water. Bring to a boil over high heat, then reduce to a simmer and cook for about 20 minutes until the potatoes are fork-tender but still hold their shape—they should not be mushy or falling apart.
While the potatoes are cooking, finely dice the red onion into 1/4-inch pieces and chop the fresh dill. In a large bowl, whisk together the mayonnaise, yogurt, mustard, and apple cider vinegar until smooth and well combined. Stir in the garlic powder, salt, black pepper, and celery seed, mixing thoroughly to distribute the seasonings evenly. This timing allows the dressing to meld slightly while you finish cooking the potatoes—I find this helps the flavors develop better than if you assemble everything at the last minute.
Drain the cooked potatoes in a colander and spread them on a baking sheet or large plate to cool to room temperature—this typically takes 10-15 minutes. Cooling them quickly stops the cooking process and prevents them from becoming mushy. Once cooled, add the potatoes and diced red onion to the dressing bowl and gently fold everything together until the potatoes are evenly coated. I like to fold gently rather than stir vigorously to keep the potato pieces intact and preserve their texture.
Transfer the potato salad to a serving bowl or storage container and refrigerate for at least 2 hours before serving. This chilling time allows the flavors to fully meld and develop. Just before serving, gently fold in most of the chopped fresh dill, reserving a small amount to sprinkle on top as a garnish for freshness and visual appeal.