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:
IF
CharacterStatusApplied(_Character, "MYMOD_REMOVE_SNEAKING", _)
AND
CharacterIsPlayer(_Character, 1) // Optional
AND
HasActiveStatus(_Character, "SNEAKING", 1)
THEN
RemoveStatus(_Character, "SNEAKING");
Or:
Behavior (gameScript) version:
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