Sorry was called away to a meeting before I could fully finish the description of what I am proposing.
You would set up your controller to be distance based - with a maximum / target velocity and a maximum acceleration. Then you would feed the motor controller new position commands.
Essentially you would plan a path for the robot in arcs and then pass those arcs directly to the motor controller. The motor controller would have a stack of commands that it would have to execute. If it ran out of commands the motor controller would be responsible for safely bringing the robot to a halt within the defined acceleration limits.