I solved it by concatenating string and then execute
CREATE procedure [dbo].[GetRemoteData]
(
@District nvarchar(10),
@Vdc nvarchar(10),
@instanceName nvarchar(max),
@dbname nvarchar(max)
)
as
begin
declare @conInstanceName nvarchar(max)
declare @tablename nvarchar(max)
set @tablename='dbo.Records'
set @conInstanceName='['+@instanceName+']'+'.'+@dbname+'.'+@tablename
declare @SQLQUERY nvarchar(500)
set @SQLQUERY='select top 10 * from'+@conInstanceName
EXEC sp_executesql @SQLQUERY
end