Get touch location relative to widget

I want to push a button and then, without releasing, drag my finger around the screen to rotate a top-down character in the direction my finger is relative to the button.

I don’t just want to rotate the character using a joystick axis - I want to get the constantly updating screen location of the player’s finger relative to the pressed button, and use that data to control the character rotation.

I can get the button viewport location using “Local to Viewport”. I just can’t work out how to get touch location on the viewport on an updating basis whilst a button is pressed?