If you are trying to return the names of the columns, then try:
SELECT column_name FROM information_schema.columns WHERE table_name = 'MyTable'
If you are trying to pass a column name into an SQL SELECT command as a variable, then you can do it directly if the table name is fixed:
DECLARE @COL NVARCHAR(MAX)
SET @COL = 'ColumnName'
SELECT @COL FROM MyTable
If you want the table to be in a variable as well, you need to EXEC it:
DECLARE @COL NVARCHAR(MAX)
SET @COL = 'ColumnName'
DECLARE @TAB NVARCHAR(MAX)
SET @TAB = 'MyTable'
DECLARE @COMMAND NVARCHAR(MAX)
SET @COMMAND = 'SELECT ' + @COL + ' FROM ' + @TAB
EXEC(@COMMAND)