I use a func_tracktrain with 4 path_tracks, each rotated 90 degrees. I put these at almost the same exact axis (cannot be same or map won't load) so that there is very little movement other than the rotation. This works great, but it may be easier to just use a physbox and motor... that is, if it will work in mid-air.