Accelerate and Decelerate linear Rotation
I managed to solve this with animation nodes and mapping an F-curve Value to a controller object and tying that to the rotation of the gear driver.  
This the node set up I used to solve this incase anyone is wondering. Just needed to add together the total F-Curve values of each frame, this made the gears run a bit to fast so I divided them by 30 to get a better base speed. Now I can just paste the position of the sphere between to positions and the transition between Speeding up and slowing down no move slowly as expected.