You should look into THREE.Quaternion.slerp and THREE.Vector3.lerp methods.
Slerp stands for "spherical linear interpolation" while lerp stands for "linear interpolation".
A matrix then has to be constructed by three based on these two, but three handles this internally if you set myObject3D.position and myObject3D.quaternion.
If your starting point is a matrix4, you can decompose it into quaternions and vectors, and then compose one from the new results. If you want just the end result in a matrix you can use makeRotationFromQuaternion( quaternion ) followed by setPosition( position ).