SQL Server 2012 - sp_executesql multiple parameter error
You can't parameterize column and table names, sorry. You'll need to do this the old way:

SET @tableCreateSQL = N'SELECT ' + QUOTENAME(@ID1) + N'
               INTO   dbo.' + QUOTENAME(@StageTable1) + N'
               FROM   dbo.' + QUOTENAME(@StageTable2) + N';';


Also see:


Protecting Yourself from SQL Injection in SQL Server - Part 1
Protecting Yourself from SQL Injection in SQL Server - Part 2