Hi Nick,
As Minerva mentioned, the IKFast provides position-only IK, you can use it direct.
Besides, if you are using MoveIt!, there are another two choices:
1. use computeCartesianPath() to calculate and excute the Cartesian path from start_pos to end_pos, if the star_pos and end_pos have a similar orientation, the computed Cartesian path will maintain the orientation of end-effector.
2. If you want to plan a collision-free path, you can implement planning path constraints. the orientation_constraints can help to maintain the orientation of end-effector. But this will increase planning time.
Best Regards!