You can try clearing the rotation: in object mode, Object -> Clear -> Rotation.
The default transform orientation is the XYZ axis so you could also try Object -> Transform -> Align to Transform Orientation. You can also create custom transform orientation: Rotate a cube (for example) in edit mode select the face of the cube that you want to be the transform, in Propeties panel (N), find ‘Transform Orientations’, select ‘+’ to add that to the list. Select the new transform (named ‘Face’ if this is your first one) from the options menu to use that transform orientation.
There are also tools for snapping during transformation (the ‘magnet’ and associated options in the 3d view header.) These take a little practice but can be useful for snapping the face of one object to that of another.