You are probably suffering of a gimbal lock issue. If the axis of your object is not align with the axis of his parent the rotation will be evaluated on multiple axis at the same time. If you want to see what you real axis is, use the add rotation mode.
If you want to solve this problem try to parent your animated object under a null in the space. Your animated object should have the local SRT coordinate at zero on all axis(except for the scaling at one obviously). But you have to take care if your object is already animated, all the animation will be evaluated in the new parent object space.So you will see your object jumping to another position.
You can also try to change the rotation order of your object, check in the local kinematics Property. Rotations are evaluated one axis at a time, first turn on X then Y and finally Z, changing this order could bring back an axis in the direction of your desired rotation, but in this case also it will change your previous animation.
Hope it helps and good luck