You put global variables outside of (typically above) any functions.
enum {PatternX, PatternY, PatternZ};
byte CurrentPatternID = PatternX;
char *CurrentPatternName = "Pattern X";
Then, in the place where you select a new pattern, set the global pointer to point to a different string constant:
// Change to pattern Y
CurrentPatternID = PatternY;
CurrentPatternName = "Pattern Y";
Then when you update the display, print CurrentPatternName.