Sneaking characters have a status called "SNEAKING", so you can check for that and remove it when appropriate.

One idea for going about that is to have your object emit a hidden aura status. When that status is applied to a player, you check the player (with scripting) for SNEAKING.

Something like:

(Disclaimer: I wrote these externally in notepad, so there may be a typo or compile error I missed)

Story version:
Code
IF
CharacterStatusApplied(_Character, "MYMOD_REMOVE_SNEAKING", _)
AND
CharacterIsPlayer(_Character, 1) // Optional
AND
HasActiveStatus(_Character, "SNEAKING", 1)
THEN
RemoveStatus(_Character, "SNEAKING");


Or:

Behavior (gameScript) version:
Code
EVENT MyMod_RemoveSneaking
VARS
	CHARACTER:_Character
ON
	OnCharacterStatusApplied(_Character, MYMOD_REMOVE_SNEAKING)
ACTIONS
IF "c1&c2"
	CharacterIsPlayer(_Character)
	CharacterHasStatus(_Character, SNEAKING)
THEN
	CharacterRemoveStatus(_Character, SNEAKING)
ENDIF