Hi,
For this, i solved it by having an invisible touch area that the actual button follow, and i clamp the position magnitude which then constraint it into a circle.
check out "uguiJoysticj" on the Ecosystem, there is a fully working sample for this.
Bye
Jean