There are parts of your problem that are not quantified.
How does linear movement turn into angle? Is this a linear or parabolic relation? If you have a linear actuator driving a rod around a rotational joint, it's parabolic, and you may need to compensate for that.
Also, your control loop may be simpler if you can keep two values: "Where I am" and "Where I want to be." You can re-calculate "where I want to be" based on absolute time each time through the loop, and then compare to "Where I am," and make a change if the difference is large enough.
Also, if you are expecting to do this work based on dead reckoning over many hours, with frequent starts and stops, then the specified speed in mm/s is not going to help you, because the actual speed you will get from each small burst of movement is going to be dominated by load and acceleration, not max unloaded speed. And load changes with things like "wind" and "temperature." Thus, your best bet is to get an encoder that can measure where your load is currently located, which will make the system self-correcting.