We need to make some instances of our SQL Server invisible, so you can’t view it from SQL Server Management Studio “Browse for servers” screen but you can connect to it if you know its instance name…
Also prevent any possibility of getting the list of the other instances from inside an instance that you are connected
Any ideas?
Perhaps this is what you are looking for.

How to: Hide an Instance of SQL Server Database Engine