When creating a table the name of the table cannot be a variable. However what you can do is that you can build the SQL statement into a variable and then execute it.
Something like
DECLARE @sql NVARCHAR(MAX)
SET @sql = 'CREATE TABLE ' + @tablenamevariable
EXECUTE sp_executesql @stmt = @sql
For more information, see
sp_executesql[
^]