How can I setup a Login which can run an automated Database Refresh without giving away too much priv?
You need to use impersonation.  

Let's assume that loginB has elevated privileges.  Your stored procedure will have an "Execute as" line:

execute as login = 'yourdomain\loginB';
backup database @dbname to disk.......
revert;


You must grant impersonation on loginB to loginA.  Also, loginA must have execute permissions on the stored procedure.
MSDN reference for EXECUTE AS:  https://technet.microsoft.com/en-us/library/ms188304(v=sql.105).aspx