I am trying to create a very simple 2D animation where a planet performs a very simple perfect orbit/rotation around a supergiant. The initial placement of the planet is random, with the only placement rule being that it does not collide with the supergiant. No real physics involved and the orbit needs to happen at a consistent speed.
The circle above represents the orbital path. c is the xy vector representing the center of the supergiant. p is the xy vector representing the center of the planet. d is the distance between c and p. m is the speed of travel per frame. p2 is the new position of the planet after applying m.
I know all the values above apart from p2. How can I get p2?
Note that using m to get p2 is important for me. It represents the amount of times the normalised directional vector is multiplied. So the magnitude vector from p to p2 could be divided by m to get the normalised directional vector (I hope that makes sense).
Assume clockwise rotation for this question, although an answer that covers counter-clockwise as well would be appreciated.

Probably the simplest way is to say $\vec d=|d|(\cos \theta, \sin \theta)$ and the only thing you need now is $\theta$ at each step. You just calculate a new $\vec d$ after incrementing the angle, add it to $c$ to get all the $p$'s.
Added: You can draw the radius through the midpoint of your $m$ step, making a right triangle with the existing radius and half the $m$ step. The angle at the center is $\frac 12\Delta \theta = \arcsin \frac m{2d}$ You can use this to get the step in $\theta$ per time step. Increment $\theta$ by this amount, compute the new $\vec d$, add it to $c$ and that gives you $p2$. If you start at angle $\theta_0$, your position after $n$ timesteps is $\vec c+|d|(\cos (n\Delta \theta+\theta_0), \sin (n \Delta \theta+\theta_0))$