I've solved it. These two functions work together to accomplish what I wanted: thanks for the help guys 
Simba Code:
function TurnToMMPoint(P: TPoint): Extended;
var
d, current,final :extended;
begin
d := ArcTan2((P.Y - MMCY), (P.X - MMCX ));
Result := degrees((fixRad(d-Pi)))- 90;
Result := radians(result);
current := rs_GetCompassAngleDegrees();
current := radians(current);
final := (Result + current);
final:= degrees(final);
MakeCompass(final + randomrange(-10,10))
end;
procedure turnToNpc();
var
i:integer;
NPCArray : TPointArray;
NPCPoint:Tpoint;
begin
NPCArray := GetMinimapDots('NPC');
if Length(NPCArray) < 1 then
Exit;
SortTPAFrom(NPCArray, Point(MMCX, MMCY)); //sort to the closest yellow dot
for i := 0 to High(NPCArray) do
begin
NPCPoint := NPCArray[i];
SMART_ClearCanvasArea(IntToBox(524,7,709,159));
SMART_DrawBoxEx(false,false,IntToBox((NPCPoint.x)-3,(NPCPoint.y)-3,(NPCPoint.x)+3,(NPCPoint.y)+3),ClYellow);
wait(randomrange(200,500));
TurnToMMPoint(NPCPoint);
wait(randomrange(1,500));
exit;
end;
end;