I am a programmer tasked with developing a newtonian simulation of high performance spacecraft. For the sake of discussion, each craft is a rigid body with non uniform moments that must navigate its environment by applying only (central) forces and torques. Mass and acceleration can vary by a couple orders of magnitude. Linear and angular tracking are treated independently. The high order parameters are: max speed, max angular speed, max torque scalar (may be component-wise) and max force magnitude.
Here's what I have now:
The linear tracking code is very simple and attempts to minimize the difference between actual velocity and desired velocity using kinematic knowledge of motion to produce the desired velocity at each tick (accelerate to apogee, decelerate to target). This is comfortable territory.
Angular tracking is significantly more bloated and follows the same principals by trying to minimize local angular error component-wise. There is some hand-waving of the coupling of large angular terms that makes this even remotely acceptable. So it works alright if there is an abundance of turning power, but the big problem is that it is just a messy solution that I'm afraid might blow up in my face later.
Is there a better way to approach the angular tracking problem or is this just how it is done? I intend to start layering flight AI on top of this simulation.
(If there are flight sim devs out there in the crowd, what can I say, I would really appreciate your advice!)

Cheers
-Kludgy