I believe %SUPERQ will mask the & and " allowing you to pass the string through without attempting to resolve the & reference. To use %Superquote the path will be stored in a macro variable then referenced.
data _null_;
call symput('mv1','Smith&Jones');
call symput('mv2','%macro abc;');
run; %let testmv1=%superq(mv1);
%let testmv2=%superq(mv2);
%put Macro variable TESTMV1 is &testmv1;
%put Macro variable TESTMV2 is &testmv2;
When this program executes, these lines are written to the SAS log:
Macro variable TESTMV1 is Smith&Jones
Macro variable TESTMV2 is %macro abc;
... View more