I'm not sure what I can tell you. Obviously, you need to include something in your job to indicate which step it needs to execute. Is this job processed by your job scheduling system? If so, I would think that your job scheduling system could make the determination as to which system the job will be initiated on, and then modify the job as-needed before it initiates it.
Otherwise, the only option I see is for you to add a step and use a program or utility that can determine the active system and set the Return-Code value based on which system the running job is active on. Then you'll have to include some IF/THEN/ELSE logic in your job to guide it through which step to run and which one to skip.
If you have DFSORT, something like this should work:
//STEP0000 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//SYMNAMES DD *
SYSID,S'&SYSNAME'
/*
//IN DD *
/*
//T1 DD UNIT=VIO
//OUT DD SYSOUT=*
//TOOLIN DD *
COPY FROM(IN) USING(CTL1)
COUNT FROM(T1) EMPTY RC4
/*
//CTL1CNTL DD *
INREC FIELDS=(1:SYSID,80:X)
OUTFIL FNAMES=T1,INCLUDE=(1,4,CH,EQ,C'SYS2')
/*
//*
// IF (STEP0000.RC = 0) THEN
//*****************************************************************
//*CREATES AN EMPTY FILE-01
//*****************************************************************
//STEP001A EXEC PGM=IEFBR14
//GDGVERSN DD DSN=HLQ.MLQ.FILENAME,
// SPACE=(TRK,(1,0)),
// LRECL=604,RECFM=FB,
// DISP=(,CATLG,DELETE)
//*
// ELSE
//*
//*****************************************************************
//*CREATES AN EMPTY FILE-01
//*****************************************************************
//STEP001B EXEC PGM=IEFBR14
//GDGVERS1 DD DSN=HLQ.MLQ.FILENAME2,
// SPACE=(TRK,(1,0)),
// LRECL=604,RECFM=FB,
// DISP=(,CATLG,DELETE)
// ENDIF
//*