How to prevent sysadmin server role from executing a stored procedure
Members of the sysadmin role cannot be denied permission to anything in SQL Server.  The documentation for DENY (Transact-SQL) states:


  ...except that DENY does not apply to object owners or members of the sysadmin fixed server role.


So in order to prevent a sysadmin from running a stored procedure, you would need to put code in the stored procedure to check if the user is a sysadmin and return an error if they are.  However, a sysadmin could easily get around this by:


modifying the stored procedure
creating a new stored procedure with the same code and ripping out the part that checks for sysadmin
running the same code, minus the part that checks for sysadmin, from a SQL client
using EXECUTE AS to run the procedure as a different user


If your goal is to prevent sysadmin users from seeing sensitive data, the way to do that is to use Always Encrypted.  This encrypts and decrypts the data with a key that only the application has access to.  If a sysadmin reads the table, they will just see encrypted data.