JOBLIB: is used at the start of the JCL to specify and override library to use for the entire job. It is placed immediately after the job statement and applies to the whole job.
STEPLIB: is used in an individual step in the job. It is placed immediately after the EXEC statement to which it applies to and is used only for that step.
JCLLIB & PROCLIB: are used to specify where JCL is to be loaded from rather than programs. JCLLIB is used with the INCLUDE MEMBER statement to specify the libraries where pieces of JCL are held that can be included into a number of jobs. PROCLIB is the DD statement to override where to get procedures from.