Raycasting gives you a world position (hit.point). Knowing the widget's transform, use InverseTransformPoint function to convert it to local space. Account for the pivot if you need to (if it's bottom left, you don't). The position should now be in 0-1 range -- which coincidentally matches your UV coordinates of the texture.