On my system the variable $SUDO_USER is set to the caller’s user name.
You shouldn’t extract the username from the ${HOME} variable directly. It’s being configured and not calculated. To Extract the username you could take a look into /etc/passwd file, but this is very system dependent, e.g. sometimes you have to look into a LDAP directory or the entries are propagated through NIS …