Is this an acceptable implementation of ARC4 encryption for my system?
There are a bunch of problems with this protocol.

First of all, the way you generate your RC4 key (concatenate a secret key with a public nonce) is known to be weak.  The one thing that saves you is that you only do it 256 times before generating a fresh secret key; however it is known that if you were to do it, say, 2000 times with a secret key, you would have a small probability of leaking the secret key.  In my opinion, that's close enough to be scary; I'd rethink this.

Now, on to your actual question:


  I think this is not a very smart way to implement MAC


That's putting it mildly; it's a very bad way to implement it.  The problem is that CRC-8 is perfectly linear; someone who intercepts a packet can flip bits in the ciphertext, and then predict which bits in the CRC-8 he would need to flip to compensate; the decrypted plaintext will have precisely those bits flipped.  The only thing that can save you is you will reject the same message twice; an inventive attacker can get around this by causing the reception of the authentic message to fail.

It would appear that the main restriction you have is on memory (for the program and data), and not so much on execution speed. If so, I would suggest you look at small AES implementations, such as talked about in this stack exchange.  They would appear to fit well within your budget, and can be used as the basis for a truly secure protocol.