Place potato chunks in a large pot and cover with cold water by about an inch. Bring to a boil over high heat, then reduce to a simmer and cook for 12-15 minutes until potatoes are tender but not falling apart.
While potatoes cook, place eggs in a separate saucepan and cover with water. Bring to a boil, then cover and remove from heat. Let sit for 10 minutes before transferring to ice water to cool completely.
Drain potatoes well and spread them out on a baking sheet to cool slightly for about 10 minutes. This helps them dry out a bit so the dressing sticks better.
Peel and chop the hard-boiled eggs into small pieces. In a large bowl, whisk together mayonnaise, Dijon mustard, apple cider vinegar, salt, pepper, and paprika until smooth.
Add the slightly cooled potatoes to the dressing along with diced red onion, celery, chopped eggs, and fresh dill. Gently fold everything together until evenly coated.
Taste and adjust seasoning if needed. Transfer to a serving bowl, cover, and refrigerate for at least 1 hour before serving to allow flavors to meld.