You want to interpolate the angle. Vectors have an angle_to() method that does the work of having to write a utility function to calculate the difference between two angles.
From there you want to multiply in some amount between 0 and 1 to get yourself a slice of that angle difference. Then add that to the current rotation.
This is done in radians, so be mindful of that, as the other poster pointed out. If you prefer degrees, and don't have to worry about overhead, then there is the deg2rad() function that can be helpful.
If you're doing this as a continuous effect, then you will want to pick some turning speed, and maybe adjust it. If you're doing animation, then you can use tweening and easing algorithms to provide you with a "t" (time) value.
I recently wrote an example for myself to do this for some other application. Maybe you will find this helpful.
var turning_speed = .04
var orientation = Vector2(0,1)
var line_distance = Vector2(0,0)
var sprite = Sprite.new()
var screen_size = get_viewport().get_visible_rect().size
sprite.set_pos(Vector2(screen_size.x / 2, screen_size.y / 2))
sprite_pos = sprite.get_pos()
var m = get_viewport().get_mouse_pos()
m -= sprite_pos
line_distance = m
m = m.reflect(m)
var new_angle = orientation.angle() + orientation.angle_to(m) * turning_speed
orientation.x = sin(new_angle)
orientation.y = cos(new_angle)
draw_line(sprite_pos, sprite_pos + line_distance, Color(.01, .2, .6, .8), 2)