Sorry I'm not familiar with Nuclear Throne, but here are some expressions that might be useful to you.
[quote:rgz7gf0m]clamp(x, lower, upper) - Return lower if x is less than lower, upper if x is greater than upper, else return x.
distance(x1, y1, x2, y2) - Calculate distance between to points
In the event where you set the crosshair to your mouse position every tick, add the condition system compare two values: distance(player.x,player.y,mouse.x,mouse.y)<100. This will make it so that once your mouse gets farther than 100 pixels away from the player, the crosshair will stop updating its position. Probably not the effect you are looking for though...
Clamping your crosshair position to player x and player y +-100 would result in a square range around your player, also probably not what you are looking for...
Quick workaround I can think of is to use both together by using two actions every update tick - move the crosshair to player.x, player.y, and then move it at angle towards your mouse, amount being distance from player to mouse clamped at maximum 100. It looks like this:
Every Tick | Move crosshair to player.x, player.y
| Move crosshair clamp(distance(player.x,player.y,mouse.x,mouse.y),0,100)
pixels towards angle(player.x,player.y,mouse.x,mouse.y) degrees[/code:rgz7gf0m]
Unfortunately I have no idea how you plan on setting up controller aiming so this might not work with that! I hope it gives you some ideas to work with though.