Can I optimize this further?

consider -- separates data from code

struct Tbl {
    int     thresh;
    const char *str;
};

Tbl tbl [] = {
    { 249, "S9+50" },
    { 227, "S9+40" },
    { 199, "S9+30" },
    { 179, "S9+20" },
    { 150, "S9+10" },
    { 139, "S9" },
    { 132, "S8" },
    { 125, "S7" },
    { 109, "S6" },
    {  93, "S5" },
    {  80, "S4" },
    {  65, "S3" },
    {  50, "S2" },
    {  39, "S1" },
    {   0, "S0" },
};
#define N_TBL   (sizeof(tbl)/sizeof(Tbl))

const char *
valToStr (
    int     val )
{
    for (unsigned n = 0; n < N_TBL; n++)
        if (tbl [n].thresh < val)
            return tbl [n].str;

    return NULL;
}

void setup ()
{
    Serial.begin (9600);

    for (int n = 0; n < 300; n += 20)
        Serial.println (valToStr(n));
}

void loop ()
{
}