Another option using the forcats package.
ggplot(df, aes(x = distanceRemaining, y = forcats::fct_rev(factor(position))))
This has the advantage of keeping everything in the ggplot call, and playing nicely with other options such as coord_flip and facets_wrap(..., scales = "free")