how you would suggest "making the rotation vector variable as well",
One way is to make a popumenu and select the rotation vector from a list
Manipulate[ Graphics3D[ {{Yellow, Opacity[.05], Cuboid[{-0.5, -0.5, -0.5}]}, Rotate[Cuboid[{-0.5, -0.5, -0.5}], x Degree, w, {0, 0, 0}]}, Boxed -> False, PlotRange -> {{-1, 1}, {-1, 1}, {-1, 1}}] , {{x, 0, "degree"}, 0, 180, 0.1, Appearance -> "Labeled"}, {{w, {0, 0, 1}}, {{0, 0, 1} -> {0, 0, 1}, {0, 1, 0} -> {0, 1, 0}, {1, 0, 0} -> {1, 0, 0}, {1, 1, 0} -> {1, 1, 0}, {1, 0, 1} -> {1, 0, 1}}, PopupMenu}, TrackedSymbols :> {x, w}] 


