well you could try this approach:
first you know that the distance between both actors can be considered as a radius which originates at one of your actors.
What you want is a new vector which has the same length as the radius but with altered plane values.
So you have:
Vector Radius = YourPosition - HisPosition;
float Angle = InputScaleValue; // The Value from your keymap
float newX = cos(Angle) * Radius.Length;
float newZ = sin(Angle) * Radius.Length;
// XZ Plane should be the horizontal plane aka the ground youre moving onto
Vector NewPosition = (newX, 0, newZ);
I dont think this will be “THE” solution, but i guess its a start^^ (its even not tested )